package leave.dataaccess;

import leave.dataaccess.mysql.DAOFactoryImpl;
import leave.exception.DataAccessException;


public abstract class DAOFactory {
	public static DAOFactory getInstance() throws DataAccessException {
		return new DAOFactoryImpl();
	}
	
	public abstract EmployeeLeaveDAO getEmployeeLeaveDAO();
	public abstract PublicHolidayDAO getPublicHolidayDAO();
	public abstract LeaveCountDAO getLeaveCountDAO();
	public abstract LeaveDAO getLeaveDAO();
	public abstract CompensationLeaveLedgerDAO getLedgerDAO();
	public abstract AdminDAO getAdminDAO();
	public abstract LeaveTypeDAO getLeaveTypeDAO();
	
	public abstract void commit() throws DataAccessException;
}
